package com.it;


import java.util.ArrayList;
import java.util.Random;

public class Test {
    /**
     * 需求：有100份礼品，小红，小明两人同时发送，当剩下的礼品小于10份的时候则不再送出
     * 利用多线程模拟该过程并将线程的名称打印出来。
     * 并最后在控制台分别打印小红，小明各自送出多少分礼物。
     *
     * @param args
     * @throws InterruptedException
     */
    public static void main(String[] args) throws InterruptedException {
        // 创建一个ArrayList来存放礼物
        ArrayList<String> gifts = new ArrayList<>();
        // 定义数组存放礼物名称
        String[] name = {"苹果", "香蕉", "西瓜", "橘子"};
        //随机数用来模拟随机抽取礼物
        Random random = new Random();
        // 循环100次，将礼物名称添加到ArrayList中
        for (int i = 0; i < 100; i++) {
            gifts.add(name[random.nextInt(name.length)]+(i+1));
        }
        // 创建两个线程，分别模拟小明和小红送出礼物
        ThreadDemo t1 = new ThreadDemo(gifts, "小明");
        t1.start();
        //
        ThreadDemo t2 = new ThreadDemo(gifts, "小明");
        t2.start();
        // 等待两个线程都执行完毕
        t1.join();
        t2.join();
        // 打印送出的礼物数量
        System.out.println("小明送出了" + t1.getCount() + "份礼物");
        System.out.println("小红送出了" + t2.getCount() + "份礼物");
    }
}
